 /*介绍qsort函数
void qsort(
    void*base,   base是指针，指向要排序的数组的第一个元素
    为什么是void*:因为无法判断进行排序的数据类型
    size_t num,  base指向数组的元素个数，即待排序的元素个数
    size_t size, base指向数组中元素的大小，单位是字节，可用sizeof(arr[0])表示
    int(*compare)(const void*p1,consst void*p2) 函数指针，传进行比大小的函数
    把p1和p2指向的元素进行比较 如果p1指向的元素比p2指向的元素大（小），返回大（小）于零的数
    相等则返回0
);
*/
//目前的冒泡排序只能排序整型，应该如何排序浮点型、结构体
//结构体比大小不能用大于小于号
#include<stdio.h>
#include<stdlib.h>
void print_arr(int arr[],int sz)
{
 for(int i=0;i<sz;i++)
 {
    printf("%d ",arr[i]);
 }
}

int cmp_int(const void * p1,const void * p2)
{
    return *(int*)p1-*(int*)p2;   //将p2用强制类型转换为整型指针，再解引用得到整型
}

void test1()
{
    int arr[10]={3,5,7,4,1,9,2,8,6,0};
    int sz=sizeof(arr)/sizeof(arr[0]);
    print_arr(arr,sz);
    qsort(arr,sz,sizeof(arr[0]),cmp_int);
    printf("\n");
    print_arr(arr,sz);
}

int main(){
    test1();
    return 0;
}